package com.auth.gateway.model;

import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class SystemLoginConfig {

    public enum LoginType {
        FORM, TOKEN, CSRF
    }

    private String systemCode;                  // legacy-a, legacy-b 等

    private LoginType loginType;                // FORM / TOKEN / CSRF

    private String loginUrl;                    // 登录提交接口
    private String method = "POST";             // 默认 POST

    // FORM 登录配置
    private String usernameParam;
    private String passwordParam;
    private String staticPassword;
    private List<String> cookieNames;           // 登录后要缓存哪些 Cookie

    // TOKEN 登录配置
    private String requestType;                 // JSON / FORM
    private String tokenField;                  // token 字段名称
    private String headerName;                  // Authorization / X-Token 等

    // CSRF 登录配置
    private String csrfPageUrl;                 // 登录页面，用于提取 CSRF token
    private String csrfFieldName;               // 表单中隐藏字段名
    private String csrfHeaderName;              // 提交时要带的 header 名（如 X-CSRF-TOKEN）

    // 其他拓展字段，可放入 map
    private Map<String, String> extra;          // 扩展参数，如系统特定的附加字段
}